// 页面白名单，不受拦截
import {
	showConfirm
} from '@/utils/common.js'
const whiteList = [
	'/pages/login/index'
]

export default async function() {
	function hasPermission(url) {
		let islogin = uni.getStorageSync('memberInfo'); //isLogin是登录成功后在本地存储登录标识，存储一个能够判断用户登录的唯一标识就行
		// 在白名单中或有登录判断条件可以直接跳转
		if (whiteList.indexOf(url) !== -1 || islogin) {
			console.log('通过')
			return true
		}
		console.log('失败')
		return false
	}


	uni.addInterceptor("navigateTo", {
		invoke(e) {
			if (!hasPermission(e.url)) {
				showConfirm('获取会员信息失败，去注册/登录').then(res => {
					if (res.confirm) {
						uni.navigateTo({
							url: '/pages/login/index'
						})
					}
				})
				return false
			}
			return true
		},
		success(e) {

		}
	})

	uni.addInterceptor('switchTab', {
		// tabbar页面跳转前进行拦截
		invoke(e) {
			if (!hasPermission(e.url)) {
				showConfirm('获取会员信息失败，去注册/登录').then(res => {
					if (res.confirm) {
						uni.navigateTo({
							url: '/pages/login/index'
						})
					}
				})
				console.log('不在白名单内')
				return false
			}
			console.log('在白名单内')
			return true
		},
		success(e) {

		}
	})
}